In industrial inspections, machine vision is used (1) to sort out products that are blemished, marred or otherwise defective, (2) to identify and locate a shape within the product or the product itself, and/or (3) to classify a given feature or set of features of a product (e.g., as occurs in character recognition—an unknown character is inspected so as to reveal its “class”, i.e., so as to reveal what letter or number the character represents). Intensity-based machine vision processes are used to detect flaws and defects in two-dimensional scenes of inspected items. Additionally, such processes can produce metric data that can be used to characterize the quality of an item relative to pre-determined standards. Such intensity-based processes operate well if the content of the scene undergoing inspection is highly repeatable and does not suffer from large amounts of non-linear geometric distortion (i.e., the scene is comprised of “trainable” structure). Such scenes are common in industrially manufactured parts as found in semiconductor production and graphic arts applications.
Generally, intensity-based inspection involves the comparison of a sample image or features derived from it, to an image or features of a known good sample, referred to as an inspection template. In one form, the image undergoing inspection is subtracted from the inspection template image, and differences between the two images are filtered and analyzed to determine whether a flaw or defect is present within the inspected item. Intensity difference based inspection is therefore comprised of two main phases: training and runtime inspection.
During a Training mode, the inspection template is constructed by sampling a plurality of ideal images, each of which represents an item absent of defects or possessing a sufficiently low level of defects that are considered insignificant and or acceptable. During a Runtime inspection mode, the test image, which represents the scene of the item to be analyzed (the inspected item), is first registered and then compared to the inspection template either directly or indirectly through the comparison of derived features. In this context registration or alignment refers to the process by which the coordinate frame transformation between two images of a sample part is determined. Typically, this step is used to account for whatever translation or rotation differences may be exhibited in the presentation of images of multiple samples to be inspected. In at least certain conventional machine-vision systems, there is no distinction between the region of interest (i.e., window) used to train the alignment (registration) template and the region of interest (i.e., window) used to train the inspection template.
However, the conventional usage of the same window creates a number of problems both at training and run-time. For example, derived edge features in a sample-object that are desirable for inclusion in an alignment pattern may not always be desirable for inclusion into the inspection pattern.
This conflict may also occur in situations where small features are important for inspection but considered superfluous for alignment, e.g., when inspecting small text in an image. As a result, the small features will not be detected or retained during training and will show up as extra features at run-time.
The separation of the alignment and inspection regions allows for the exploitation of situations where certain portions of the sample-object to be imaged are predetermined to be stable and defect free making them ideal for alignment and superfluous for inspection. Conversely, if the defects are severe and wide ranging the ability to perform an accurate alignment may be compromised, i.e., to be inspectable a window must be alignable to some level of accuracy. Another advantage obtained is the ability to customize the individual inspection processes to the needs of different areas of the sample to be inspected. As alluded to earlier, there are multiple types of intensity-based inspection processes, which may be more or less appropriate for different inspection goals. By decoupling alignment from inspection these different types of processes may be selectively applied to achieve a more discriminating and efficient inspection performance.
As known to those versed in the art, usage of automated inspection processes invariably requires the selection and tuning of various process specific parameters. An ancillary benefit gained from multiple decoupled inspection regions is the ability to independently tune parameters for identical types of inspection processes in different areas of the sample to be inspected.